#include <iostream>
#include <algorithm>
using namespace std;
void divide(int n)
{
    for (int i = 2; i <= n / i; i++) // 找质数（质数先于合数）
    {
        if (n % i == 0) // 能整除
        {
            int s = 0; // 计每个数用的次数
            while (n % i == 0)
            {
                n /= i;
                s++;
            }
            printf("%d %d\n", i, s);
        }
    }
    if (n > 1) // 输出最后的余数
        printf("%d %d\n", n, 1);
    puts("")
}
int main()
{
    int n;
    scanf("%d", &n);
    while (n--)
    {
        int x;
        scanf("%d", &x);
        divide(x);
    }
    return 0;
}